package com.jzo2o.market.controller.operation;


import com.jzo2o.common.model.PageResult;
import com.jzo2o.common.model.Result;
import com.jzo2o.market.model.domain.Activity;
import com.jzo2o.market.model.dto.request.ActivityQueryForPageReqDTO;
import com.jzo2o.market.model.dto.request.ActivitySaveReqDTO;
import com.jzo2o.market.model.dto.response.ActivityInfoResDTO;
import com.jzo2o.market.service.IActivityService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.web.bind.annotation.*;

import javax.annotation.Resource;

@RestController("ActivityController")
@RequestMapping("/operation/activity")
@Api(tags = "运营端 - 优惠劵相关接口")
public class ActivityController {

    @Resource
    private IActivityService ActivityService;

    /**
     * 接口名称：分页查询优惠券活动
     * 接口功能：运营端分页查询优惠券活动
     */
    @GetMapping("/page")
    @ApiOperation("分页查询优惠劵")
    public PageResult<Activity> page(ActivityQueryForPageReqDTO activityQueryForPageReqDTO) {
        return ActivityService.ispage(activityQueryForPageReqDTO);
    }

    /**
     * 接口名称：保存优惠券活动
     * 接口功能：新增或修改一个优惠券活动信息，本接口支持新增和修改。
     */
    @PostMapping("/save")
    @ApiOperation("新增优惠劵")
    public Result<Void> save(@RequestBody ActivitySaveReqDTO activitySaveReqDTO) {
        return ActivityService.addsave(activitySaveReqDTO);
    }

    /**
     * 接口名称：查询优惠券活动详情
     * 接口功能：进入修改页面首先调用此接口根据活动id查询优惠券活动详情在页面显示
     */
    @GetMapping("/{id}")
    @ApiOperation("修改优惠劵活动")
    public ActivityInfoResDTO get(@PathVariable Long id) {
        return ActivityService.getupById(id);
    }

    /**
     * 接口名称：撤销活动
     * 接口功能：撤销一个优惠券活动，对于待生效及进行中的活动如果要进行终止可以执行撤销操作，执行后活动状态改为作废，用户已抢到还未使用的优惠券将作废。
     */
    @PostMapping("/revoke/{id}")
    @ApiOperation("撤销优惠劵活动")
    public Result<Void> revoke(@PathVariable Long id) {
        return ActivityService.addrasd(id);
    }
}

